home *** CD-ROM | disk | FTP | other *** search
/ Chip 2004 September / Chip_2004-09_cd1.bin / program / delphi / download / nastroje / 97.mpth_10[1].exe / {app} / scripts / Enumerate Differences.mps < prev    next >
Text File  |  2003-10-17  |  1KB  |  70 lines

  1. = show differences in a text box
  2. INCLUDE 'def.mps'
  3.  
  4. option globalvars, 1
  5. var count dword, len dword, blocklen dword, size text
  6. var start dword ende dword curwnd text s1 dword msg text
  7.  
  8. count = compare_count
  9. if count < 1
  10.   msgbox "No differences!", MB_ICONASTERISK: 
  11.   end
  12. endif
  13.  
  14.  
  15. = calculate the maximum length of a diff block size
  16. blocklen = 0
  17. number_radix = 10
  18. number_prefix = ''
  19. number_suffix = ''
  20. loop checkdifflen, count
  21.  
  22. loop line, count
  23. showprogress 100,100
  24.  
  25. textbox msg, 'Comparison result'
  26. end
  27.  
  28.  
  29. = sub: check length of difference block
  30. @@checkdifflen
  31. len = textlen(text(compare_end(loop)-compare_start(loop)+1))
  32. if len > blocklen
  33.   blocklen = len
  34. endif
  35. return
  36.  
  37. = sub:adjust size length
  38. @@adj1
  39. size = ' '+size
  40. return
  41.  
  42. @@adjustsize
  43. loop adj1, (blocklen - textlen(size))
  44. return
  45.  
  46. = sub:write diff line
  47. @@line
  48. start = compare_start(loop)
  49. ende=compare_end(loop)
  50. number_radix = 10
  51. number_prefix = ''
  52. number_suffix = ''
  53. concat msg ('Different block '+text(loop+1)+":\t")
  54. number_radix = 16
  55. number_prefix = '0x'
  56. concat msg (text(start)+' - '+text(ende)+' (')
  57. number_radix = 10
  58. number_prefix = ''
  59. s1 = ende - start + 1:size = text(s1): call adjustsize
  60. if s1 == 1
  61.   concat msg (size + " Byte)\r\n")
  62. else
  63.   concat msg (size + " Bytes)\r\n")
  64. endif
  65. showprogress count , loop
  66. return
  67.  
  68.  
  69.  
  70.